import java.math.BigInteger;
import java.math.BigDecimal;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;

public class problem3 {
    public static boolean amIPrime(int number) {
        for (int i = 2; i < number; i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        BigInteger number = new BigInteger("600851475143");
        int num = 775146;
        int soFar =3;

        for (int i = soFar; i < num; i++) {
            if (amIPrime(i) && number.mod(BigInteger.valueOf(i)).compareTo(BigInteger.ZERO) == 0) {
                System.out.println(i);
                soFar = i;
            }
        }

        System.out.println(soFar);
    }

//    public static boolean amIPrime(BigDecimal number) {
////        BigDecimal number = new BigDecimal("123");
////        number.
//        return false;
//    }
//
//    public static void main(String[] args) {
//        BigInteger number = new BigInteger("600851475143");
//        BigInteger soFar = BigInteger.valueOf(3);
//
//        for (BigInteger i = soFar; i.compareTo(number) < 0; i = i.add(BigInteger.ONE)) {
////            if (amIPrime(i)) {
////                soFar = i;
////            }
//        }
//    }
}
